package com.ltkj.ticket.mapper;

import java.util.List;

import com.ltkj.ticket.domain.TicScenic;
import com.ltkj.ticket.domain.TicScenicStock;
import com.ltkj.ticket.domain.dto.TicScenicQueryDTO;
import com.ltkj.ticket.domain.vo.*;
import org.apache.ibatis.annotations.Param;

/**
 * 景区门票库存Mapper接口
 * 
 * @author ruoyi
 * @date 2023-08-31
 */
public interface TicScenicStockMapper 
{
    /**
     * 查询景区门票库存
     * 
     * @param scenicStockId 景区门票库存主键
     * @return 景区门票库存
     */
    public TicScenicStock selectTicScenicStockByScenicStockId(Long scenicStockId);

    /**
     * 查询景区门票库存列表
     * 
     * @param ticScenicStock 景区门票库存
     * @return 景区门票库存集合
     */
    public List<TicScenicStock> selectTicScenicStockList(TicScenicStock ticScenicStock);

    /**
     * 新增景区门票库存
     * 
     * @param ticScenicStock 景区门票库存
     * @return 结果
     */
    public int insertTicScenicStock(TicScenicStock ticScenicStock);

    /**
     * 修改景区门票库存
     * 
     * @param ticScenicStock 景区门票库存
     * @return 结果
     */
    public int updateTicScenicStock(TicScenicStock ticScenicStock);

    /**
     * 删除景区门票库存
     * 
     * @param scenicStockId 景区门票库存主键
     * @return 结果
     */
    public int deleteTicScenicStockByScenicStockId(Long scenicStockId);

    /**
     * 批量删除景区门票库存
     * 
     * @param scenicStockIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteTicScenicStockByScenicStockIds(Long[] scenicStockIds);

    /**
     * 批量新增景区门票库存
     *
     * @param
     * @return 结果
     */
    void insertBatch(@Param("days") List<String> days, @Param("scenicStockCount") Long scenicStockCount, @Param("scenicId")  Long scenicId,
                     @Param("scenicName") String scenicName, @Param("username")  String username);

    List<TicScenicPageVo> selectTicScenicList(@Param("queryDTO") TicScenicQueryDTO queryDTO);

    TicScenicStockVo selectTicScenicByScenicIdNew(@Param("scenicStockId") Long scenicStockId);

    List<TicScenic> selectTicScenicListByDays(@Param("scenicId")Long scenicId,@Param("days") List<String> days);

    List<TicketDetailVo> selectTickeDetailList();

    List<TicStockListVo> selectStockList();
}
